#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include <string>
#include <vector>
using namespace std;

void test_vector01()
{
	vector<int> v1;
	vector<int> v2(10,2);

	for (auto e : v2)
	{
		cout << e << " ";
	}
	cout << endl;

	vector<int> v3(v2.begin() + 1, v2.end() - 1);

	for (auto e : v3)
	{
		cout << e << " ";
	}
	cout << endl;
	vector<int>v4(v2);
	for (auto e : v4)
	{
		cout << e << " ";
	}
}

void test_vector02()
{
	vector<int> v1(2, 1);
	/*cout << v1.size() << endl;
	cout << v1.capacity() << endl;*/

	vector<int> v2;
	cout << v2.size() << endl;
	cout << v2.capacity() << endl;
	v2 = v1;
	cout << v2.size() << endl;
	cout << v2.capacity() << endl;
}

//assign
void test_vector03()
{
	vector<int> v1;
	v1.assign(10,2);

	vector<int> v2(10, 1);
	v2.assign(v1.begin() + 1, v1.end() - 1);
}

//push_back
//pop_back
//insert
//erase
void test_vector04()
{
	/*vector<int> v1;
	v1.assign(10, 2);
	for (auto e : v1)
	{
		cout << e << " ";
	}
	cout << endl;

	v1.push_back(1);
	for (auto e : v1)
	{
		cout << e << " ";
	}
	cout << endl;

	v1.pop_back();
	for (auto e : v1)
	{
		cout << e << " ";
	}
	cout << endl;*/

	//insert
	vector<int> v2;
	v2.push_back(1);
	v2.push_back(2);
	v2.push_back(3);
	v2.push_back(4);

	v2.insert(v2.end(), 5);
	for (auto e : v2)
	{
		cout << e << " ";
	}
	cout << endl;

	v2.insert(v2.begin(), 10, 0);
	for (auto e : v2)
	{
		cout << e << " ";
	}
	cout << endl;

	v2.erase(v2.end()-1);
	for (auto e : v2)
	{
		cout << e << " ";
	}
	cout << endl;

	v2.erase(v2.begin(), v2.begin() + 10);
	for (auto e : v2)
	{
		cout << e << " ";
	}
	cout << endl;
}

void test_vector05()
{
	vector<int> v1;
	v1.push_back(1);
	v1.push_back(2);
	v1.push_back(3);
	v1.push_back(4);
	v1.push_back(5);
	v1.push_back(6);
	v1.push_back(7);
	v1.push_back(8);
	v1.push_back(9);
	v1.push_back(10);

	auto vi = v1.begin()+9;
	cout << *vi;
}

void test_vector06()
{
	vector<string> v1;
	vector<string> v2(3,"hello world");

	vector<vector<int>>vv(10);
}

int main()
{
	test_vector06();
	return 0;
}

//class Solution
//{
//public:
//    int myAtoi(string s)
//    {
//        if (s.size() == 0)
//        {
//            return 0;
//        }
//
//        int i = 0;
//        int flag = 1;
//        while (s[i] == ' ')
//        {
//            ++i;
//        }
//
//        if (s[i] == '-')
//        {
//            flag = -1;
//            ++i;
//        }
//        else if (s[i] == '+')
//        {
//            ++i;
//        }
//
//        while (s[i] == '0')
//        {
//            ++i;
//        }
//
//        int ans = 0;
//        int num = 0;
//        int im = INT_MAX / 10;
//        while (s[i] >= '0' && s[i] <= '9' && i < s.size())
//        {
//            num = s[i] - '0';
//            if (ans > im || ans == im && num >7)
//            {
//                if (flag == 1)
//                {
//                    return INT_MAX;
//                }
//                else
//                {
//                    return INT_MIN;
//                }
//            }
//
//
//            ans = ans * 10 + num;
//            ++i;
//        }
//        return flag * ans;
//    }
//};
//
//int  main()
//{
//    Solution s;
//    int ret = s.myAtoi("4139 with words");
//    cout << ret;
//
//    return 0;
//}